package objetos.aeronaves.enemigos;

import movimiento.Posicion;
import movimiento.patrones.Circular;
import objetos.Energia;
import objetos.aeronaves.Enemigo;
import objetos.armas.CuartoArmas;
import org.jdom.*;
import vistas.FactoryVistas;
import ar.uba.fi.algo3.titiritero.ControladorJuego;
import ar.uba.fi.algo3.titiritero.vista.Imagen;
import auxiliares.Vector;

/*
 * Clase que modela al explorador enemigo
 */
public class Scout extends Enemigo {

	public Scout() {
		super();
		this.setTamanio(24);
		this.setEnergia(new Energia(15));
		this.setVelocidad(new Vector(0, 2));
		this.setPatron(new Circular(15));
		this.setPuntajeOtorgado(50);
		this.setVelocidadHuida(new Vector(0, -2));
	}

	public Scout(Posicion posicion) {
		this();
		this.setPosicion(posicion);
	}

	public Scout(int x, int y) {
		this(new Posicion(x, y));
	}

	@Override
	public Imagen darVista(ControladorJuego controlador) {
		return FactoryVistas.crearVista(this, controlador);
	}

	/* Persistencia */

	/* Constructor a partir de nodoXML */
	public Scout(Element nodo) {
		this(Integer.parseInt(nodo.getAttributeValue("posicionX")), Integer
				.parseInt(nodo.getAttributeValue("posicionY")));
		this.setArsenal(new CuartoArmas(nodo.getChild("cuartoArmas")));
		this.getArsenal().setBase(this);
	}

	/* NodoXML a partir de instancia */
	@Override
	public Element obtenerNodo() {
		Element nodo = new Element("scout");
		nodo.setAttribute(new Attribute("posicionX", Integer.toString(this
				.getPosicion().getEnX())));
		nodo.setAttribute(new Attribute("posicionY", Integer.toString(this
				.getPosicion().getEnY())));
		nodo.addContent(this.getArsenal().obtenerNodo());
		return nodo;
	}

}
